草庐IT

leetcode 2744

全部标签

leetcode 51. N-Queens N 皇后(困难)

一、题目大意标签:搜索https://leetcode.cn/problems/n-queens按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将n 个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个不同的 n皇后问题的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。示例1:输入:n=4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4皇后问题存在两个不同

leetcode 51. N-Queens N 皇后(困难)

一、题目大意标签:搜索https://leetcode.cn/problems/n-queens按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将n 个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个不同的 n皇后问题的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。示例1:输入:n=4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4皇后问题存在两个不同

leetcode 47. Permutations II 全排列 II(中等)

一、题目大意标签:搜索https://leetcode.cn/problems/permutations-ii给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。示例1:输入:nums=[1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例2:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1-10二、解题思路用回溯法解决全排列问题,给定的数组中元素有重复,因此用回溯法执行后的全排列结果中会有重复的,如下图所示。解决方法,先构造一个hashmap,key是元素,v

leetcode 47. Permutations II 全排列 II(中等)

一、题目大意标签:搜索https://leetcode.cn/problems/permutations-ii给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。示例1:输入:nums=[1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例2:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1-10二、解题思路用回溯法解决全排列问题,给定的数组中元素有重复,因此用回溯法执行后的全排列结果中会有重复的,如下图所示。解决方法,先构造一个hashmap,key是元素,v

leetcode 70. Climbing Stairs 爬楼梯(简单)

一、题目大意标签:动态规划https://leetcode.cn/problems/climbing-stairs假设你正在爬楼梯。需要n 阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1阶+1阶2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1阶+1阶+1阶1阶+2阶2阶+1阶提示:1二、解题思路给定n节台阶,每次可以走一步或两步,求一共有多少种方式可以走完这些台阶。这是个斐波那契数列题。定义一个数组dp,dp[i]表示走到第i阶的方法数。因为我们每次可以走一步或两步,所以第i阶可以从第

leetcode 70. Climbing Stairs 爬楼梯(简单)

一、题目大意标签:动态规划https://leetcode.cn/problems/climbing-stairs假设你正在爬楼梯。需要n 阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1阶+1阶2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1阶+1阶+1阶1阶+2阶2阶+1阶提示:1二、解题思路给定n节台阶,每次可以走一步或两步,求一共有多少种方式可以走完这些台阶。这是个斐波那契数列题。定义一个数组dp,dp[i]表示走到第i阶的方法数。因为我们每次可以走一步或两步,所以第i阶可以从第

LeetCode - 数组的旋转总结

1.数组的旋转总结数组的旋转指的是将数组的最后若干个数提前到数组前面,数组的翻转指的是将数组的顺序颠倒。旋转可以通过多次翻转实现。数组的翻转很简单,通过双指针来实现:交换数组的第一个数和最后一个数,交换第二个数和倒数第二个数,一直到数组中间即可。2.题目记录189.轮转数组分析题意给你一个数组,将数组中的元素向右轮转 k **个位置,其中 k **是非负数。思路分析其实题目就是一个数组旋转问题,我们可以通过图片来分析一下:将上面这个数组向右轮转3个位置,其实就是:将数组的后3个元素旋转到数组前面,即:数组的旋转。前面我们讲到:数组的旋转可以通过多次数组翻转来实现:我们首先对整个数组进行翻转,然

LeetCode - 数组的旋转总结

1.数组的旋转总结数组的旋转指的是将数组的最后若干个数提前到数组前面,数组的翻转指的是将数组的顺序颠倒。旋转可以通过多次翻转实现。数组的翻转很简单,通过双指针来实现:交换数组的第一个数和最后一个数,交换第二个数和倒数第二个数,一直到数组中间即可。2.题目记录189.轮转数组分析题意给你一个数组,将数组中的元素向右轮转 k **个位置,其中 k **是非负数。思路分析其实题目就是一个数组旋转问题,我们可以通过图片来分析一下:将上面这个数组向右轮转3个位置,其实就是:将数组的后3个元素旋转到数组前面,即:数组的旋转。前面我们讲到:数组的旋转可以通过多次数组翻转来实现:我们首先对整个数组进行翻转,然

leetcode 310. Minimum Height Trees 最小高度树(中等)

一、题目大意标签:搜索https://leetcode.cn/problems/minimum-height-trees树是一个无向图,其中任何两个顶点只通过一条路径连接。换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的树,标记为 0 到 n-1。给定数字 n 和一个有n-1条无向边的edges 列表(每一个边都是一对标签),其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点x作为根节点时,设结果树的高度为h。在所有可能的树中,具有最小高度的树(即,min(h))被称为最小高度树。请你找到所有的最小

leetcode 310. Minimum Height Trees 最小高度树(中等)

一、题目大意标签:搜索https://leetcode.cn/problems/minimum-height-trees树是一个无向图,其中任何两个顶点只通过一条路径连接。换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的树,标记为 0 到 n-1。给定数字 n 和一个有n-1条无向边的edges 列表(每一个边都是一对标签),其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点x作为根节点时,设结果树的高度为h。在所有可能的树中,具有最小高度的树(即,min(h))被称为最小高度树。请你找到所有的最小